"""思路：
n最大取值为 10^5, 但是an最大为3*10^3,说明在n极端条件下，ai是有重复值的，相同的值异或为0，乘积为0
所以，这题的复杂度看ai的取值，可以暴力过
"""

import sys

n=int(input())
a=list(map(int,input().split()))
ans=1
mod=10**9+7
for i in range(n):
    for j in range(i+1,n):
        if a[i]^a[j]==0:
            print(0)
            sys.exit(0)
        else:
            ans=ans*(a[i]^a[j])%mod
print(ans%mod)